Package canvas as an installable apm package - #254
Open
Sanjay Singh (san360) wants to merge 2 commits into
Open
Conversation
Move the GitHub Copilot canvas source to .apm/extensions/ai-engineer-coach/ and add a root apm.yml manifest, following the danielmeppiel/finops-workshop pattern requested in #163. Other projects can now install the dashboard canvas with: apm experimental enable canvas apm install microsoft/AI-Engineering-Coach --target copilot --trust-canvas-extensions .github/extensions/ai-engineer-coach/extension.mjs becomes a one-line forwarding stub to the .apm/ source, so cloning and building this repo directly keeps working with no apm dependency for local development. Resolves #163 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned FilesNone |
Mirrors the existing github-actions cooldown so Dependabot never proposes bumping to an npm package version published less than 7 days ago. This addresses the root cause of local 'npm install' 404s against the corporate npm proxy (e.g. zod@4.5.4, published within days of this repo's Dependabot bump): packages that fresh aren't mirrored by the proxy yet. Reverted the ad-hoc package.json/lockfile version pins from this session — hand-editing them would embed this sandbox's internal-only proxy tarball URLs into package-lock.json's resolved fields, breaking installs for every other environment (CI and contributors use the public npm registry directly). The cooldown is the correct, environment-agnostic fix; the proxy will have mirrored a version by the time Dependabot's next update PR uses it. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Resolves #163 — makes the GitHub Copilot canvas installable via
apm(Agent Package Manager), following the pattern fromdanielmeppiel/finops-workshoplinked in the issue.What changed
.github/extensions/ai-engineer-coach/to.apm/extensions/ai-engineer-coach/— the layout apm's docs require to discover and deploy a canvas package (.apm/extensions/<name>/extension.mjs).apm.ymlmanifest (targets: [copilot]) makes this repo installable as an apm package..github/extensions/ai-engineer-coach/extension.mjsis now a one-line forwarding stub (import "../../../.apm/extensions/ai-engineer-coach/extension.mjs";). This keeps local dev/dogfooding working exactly as before (clone +npm install && npm run build, no apm dependency), while making the canonical.apm/source the thingapm installdeploys into other projects..github/dependabot.yml: added a 7-daycooldownto the npm ecosystem update block (mirroring the existing github-actions one), so Dependabot never proposes bumping to an npm version published less than a week ago. This was prompted by a localnpm install404 against a corporate npm proxy forzod@4.5.4— a version published only a few days before this PR — because the proxy hadn't mirrored it yet.Install path for other projects
Why the forwarding stub (vs. gitignoring
.github/extensions/)finops-workshop gitignores its deployed
.github/extensions/copy, since apm install is the only way to get the canvas there. This repo is different: its own canvas is actively dogfooded by contributors opening this repo as a GitHub Copilot app project, and the app only discovers canvases under.github/extensions/. Gitignoring that directory would breakgit clone+ build for every contributor unless they separately install and runapm installon their own repo. The one-line stub avoids that regression while still making the.apm/layout the canonical, apm-installable source — verified by reloading the extension in this session and confirming the canvas still opens correctly through the stub.Verification
npm run build,npm run typecheck,npm run lint,npm run spellcheck,npm run knip,npm run lockfile-lint,npm test, andnpm run check-sizeall pass with the same pre-existing (unrelated) 7 test failures ingithub-app-analytics.test.tsthat exist onmaintoo (confirmed viagit stash).extensions_reload) and opened the AI Engineer Coach canvas — it loads correctly through the new.github/extensions/ai-engineer-coach/extension.mjs→.apm/extensions/ai-engineer-coach/extension.mjsforwarding path.apmCLI itself isn't available in this sandbox, soapm installend-to-end couldn't be exercised directly; the package layout matches apm's documented.apm/package-type contract (confirmed againstmicrosoft/apmdocs and the finops-workshop reference implementation)..github/dependabot.ymlstill parses correctly after adding the cooldown block. Did not hand-editpackage.json/package-lock.jsonto pin around the proxy 404 — the lockfile'sresolvedURLs would have to point at this sandbox's internal-only proxy endpoint to reflect a real install, which would break installs for every other environment (CI and contributors use the public npm registry). The cooldown is the correct, environment-agnostic fix.